The present invention relates to AVI systems, and more particularly to systems and methods for reserving space in a memory required for storing the index of an AVI file.
The Audio Video Interleave (AVI) file format is based on a RIFF (Resource Interchange File Format) system, which can capture, edit, and playback audio-visual media. AVI divides data into blocks, or “chunks”. In general, an AVI file consists of multiple streams of interleaved audio and video data, which is subdivided into two mandatory sections and one optional section. AVI files begin with a file header containing metadata about the video (e.g. width, height, frame rate), followed by the actual audio and video data. The optional section indexes the physical addresses of the data chunks.
The index chunk contains a list of data chunks and their location in the file, and therefore enables a user to access a particular section in the file without having to search through and parsing the whole file. Although the inclusion of the index chunk is optional, the omission of the index chunk makes the data unsearchable, and may render the entire AVI file unplayable in some systems. In order for the index chunk to determine an address for each data chunk, it must know the size of each interleaved audio or video (A/V) chunk. The byte size of all A/V chunks must be stored in the memory. As video data is encoded using Variable Bit Rate (VBR) encoding, each chunk address utilizes a plurality of bytes, thereby occupying significant space in the DRAM. For example, if the memory required for storing the chunk size of a frame is 20 bits, it takes 2160 Kbytes of DRAM resource for recording eight hours NTSC video (20 bits/frame*8 hours*60 minutes*60 seconds*30 frames=2160 Kbytes).